
import { Notification ,Message} from 'element-ui';

let util = {

};

util.dateFormat = function(fmt, date) {
    let ret;
    const opt = {
        "y+": date.getFullYear().toString(),        // 年
        "M+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "m+": date.getMinutes().toString(),         // 分
        "s+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加，必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        }
    }
    return fmt;
}

/**
 * 删除表单后操作
 */
util.afterDele = function (arrs,id,total) {
    util.success();
    var temp = -1;
    for (var i = 0; i < arrs.length; i++) {
      if (arrs[i].id == id) {
        temp = i;
      }
    }
    if (temp != -1) {
        arrs.splice(temp, 1);
    }
    if(total){
        total--;
    }
};

/**
 * 添加tree后操作
 */
util.afterAddTree = function (arrs,node) {
  if(arrs!=null && arrs.length>0){
       for(var i=0;i<arrs.length;i++){
         if(node.finded){
           break;
         }
         if(arrs[i].id == node.parentId){
           if(!arrs[i].children){
               arrs[i].children=new Array();
           }
           arrs[i].children.push(node);
           node.finded=true;
           break;
         }
         if(arrs[i].children && arrs[i].children.length>0){
             util.afterAddTree(arrs[i].children,node);
         }
       }
  }else{
    arrs=[];
    arrs.push(node);
  }
};

/**
 * 修改tree后操作
 */
util.afterUpdateTree = function (arrs,node) {
  if(!node.oldattrs){
    node.oldattrs=  arrs;
  }
 
  if(arrs!=null && arrs.length>0){
       for(var i=0;i<arrs.length;i++){
        if(node.finded){
          break;
        }
         if(arrs[i].id == node.id){
          node.finded=true
           if(arrs[i].parentId==node.parentId){
            arrs[i]=node;
           }else{
            arrs.splice(i, 1);
            util.afterAddTree(node.oldattrs,node);
           }
          
           break;
         }
         if(arrs[i].children && arrs[i].children.length>0){
             util.afterUpdateTree(arrs[i].children,node);
         }
       }
  }else{
    arrs=[];
    arrs.push(node);
  }
};


/**
 * 删除tree后操作
 */
util.afterDeleTree = function (arrs,node) {
  if(arrs!=null && arrs.length>0){
       for(var i=0;i<arrs.length;i++){
        if(node.finded){
          break;
        }
         if(arrs[i].id == node.id){
          arrs.splice(i, 1);
          node.finded=true;
           break;
         }
         if(arrs[i].children && arrs[i].children.length>0){
             util.afterDeleTree(arrs[i].children,node);
         }
       }
  }
};

util.success = function (msg) {
    if(!msg){
       msg="操作成功";
    }
    Notification({
        title: '成功',
        message: msg,
        type: 'success'
    });
};

util.errorMsg = function (msg) {
    if(!msg){
       msg="发生错误";
    }
    Message({
        message: msg,
        type: 'error'
    });
};

util.dateDate=function(date){
   return util.dateFtt(date,"yyyy-MM-dd");
};

util.dateDatetime=function(datetime){
    return util.dateFtt(datetime);
 };

 util.setCookie=function(k,val) {
  Cookies.set(k, val);
 }

 util.getCookie=function(k){
  return Cookies.get(k);
 }

 util.removeCookie=function(k) {
  Cookies.remove(k);
 }

 /** 保存 */
 util.set=function(k,val){
    localStorage.setItem(k, JSON.stringify(val));
 }
 /** 删除 */
 util.dele=function(k,val){
  localStorage.removeItem(k, JSON.stringify(val));
}
 /**
  * 保存token
  */
 util.setToken=function(val){
    localStorage.setItem("token",val);
 }
 /**
  * 获取token
  */
 util.getToken=function(){
   let userinfo =   util.get("userInfo");
   if(userinfo){
     return userinfo.token;
   }
   return "";
 }

 /**
  * 根据k获取保存的对象
  */
 util.get=function(k){
    let str = localStorage.getItem(k);
    if(str){
        try{
            return JSON.parse(str);
        }catch(e){
            return str;
        }
    }
    return null;
 }

 /**
  * 判断是否登录
  */
 util.checkLogin=function(){
    let token = util.get("token");
    if(token){
        return true;
    }
    return false;
 }

export default util;